Python 改學 Go 之 基礎語法小筆記
學習計畫因為聽到公司用 Go 而改為學 Go,
翻閱一些教學文決定參考鐵人賽的文章~
主要想參考的系列:
一樣是自己的筆記,會省略我知道或不想記的東西,對別人應該沒什麼參考價值。
明天從 day7 - 指標 繼續看下去。
var i1, i2, i3 int
var (
i4 int = 1000
s string = "meow"
bool_arr []bool
)
// function type, return bool
var meow func() bool
// just like Python (;
var a, b = 1, "string"
:=
local1, local2 := 1, 2
既可宣告又可賦值,還不用寫 var。var ascii byte = 'I'
var utf8 rune = 'E'
用 %T
印出型別,例如 fmt.Printf("%d %T \n", ascii, ascii)
可以知道 byte 是 uint8 的別稱,rune 則是 int32。
manystrings := `meow
this is cool`
不過不能縮排因為從第一行到第二行中間的空格都會被印出來
iota
很酷type Hero int
const (
IronMan Hero = iota*2 + 1
DrStrange
Thor
Hulk
)
fmt.Println(IronMan, DrStrange, Thor, Hulk)
// 印出: 1 3 5 7
func myfunc(v1, v2 int) int {
//....
}
var func_var func(a, b int) int
func_var = myfunc
func addAndMinus(a, b int) (c int, d int) {
c = a + b
d = a - b
return
}
// foo函式接收2個整數和一個函式變數
func foo(a, b int, f func(a, b int) int) int {
return f(a, b)
}
func main() {
var add = func(a, b int) int {
return a + b
}
a := foo(1, 2, add)
fmt.Printf("%d\n", a)
// 印出: 3
}
else if
if myAge = myAge - 15; myAge < 20 {....略
:=
宣告新變數,雖然不知道能用在哪if myAge := 30; myAge < 20 {....略
flag := 1
switch flag {
case 0, 1:
fmt.Println("Zero - First")
case 2, 3, 4:
fmt.Println("Second - Four")
default:
fmt.Println("Other")
}
while
怪怪怪for i < 10 { i++ }
for {}
無窮迴圈 (while True:)有 goto ㄋ